using System;
using System.Collections.Generic;
using System.Text;
using SlimDX;

namespace Barrage.GUI.Elements
{
    /// <summary>
    /// Interface for elements belonging to a GUIButtonList
    /// </summary>
    public interface GUIButtonListElement
    {
        /// <summary>
        /// Element motion
        /// </summary>
        Motion Motion { get;}

        /// <summary>
        /// Element size
        /// </summary>
        Vector2 Size { get;}

        /// <summary>
        /// Renders the element
        /// </summary>
        void Render();

        /// <summary>
        /// Updates the element
        /// </summary>
        void Update();

        /// <summary>
        /// Tells if the element can be selected via keyboard / gamepad
        /// </summary>
        bool IsSelectable { get; }

        /// <summary>
        /// Returns a casted GUISelectableElement reference to this instance
        /// </summary>
        GUISelectableElement SelectableElement { get;}
        /// <summary>
        /// Returns a casted GUIElement reference to this instance
        /// </summary>
        GUIElement Element { get; }
    }
}
